package cn.zymall.goods.mapper;

import cn.zymall.common.model.Spu;
import cn.zymall.common.model.UserCollect;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author lxh
 * @Description 商品持久层
 * @date 2020/8/21 16:13
 * @Classname SpuMapper
 **/
@Mapper
public interface SpuMapper extends BaseMapper<Spu> {

    /**
     * 查询所有商品
     *
     * @return
     */
    public List<Spu> findAll();


    /**
     * 添加商品基本信息
     *
     * @param spu
     */
    public void add(Spu spu);


    /**
     * 添加商品详情
     *
     * @param spu
     */
    public void addSpuDetail(Spu spu);

    /**
     * 修改商品信息
     *
     * @param spu
     */
    public void amend(Spu spu);


    /**
     * 组合查询
     *
     * @param spu
     * @return
     */
    public List<Spu> composeFind(Spu spu);


    /**
     * 审核商品
     *
     * @param spu
     */
    public void examineStatus(Spu spu);

    /**
     * 逻辑删除商品
     *
     * @param id
     */
    public void deleteExamineStatus(Integer id);


    //商家端


    /**
     * 提交审核
     *
     * @param spu
     */
    public void submitExamine(Spu spu);


    /**
     * 是否为推荐商品
     *
     * @param spu
     */
    public void updateSpuRecommend(Spu spu);


    //用户app端


    /**
     * 根据用户查询收藏的商品
     */
    public List<Spu> getCollectSpu(UserCollect userCollect);

    /**
     * 批量逻辑删除收藏的商品
     *
     * @param list
     */
    public void removeCollectSpu(List list);

    /**
     * 根据商品id查询商品
     * * @param id
     * @return
     */
    public Spu findByIdSpu(Integer id);


    /**
     * 查询所有，多条件查询
     * @return
     */
    public List<Spu> findAllSpu();

}
